package test_struct

import "fmt"

//定义结构体
type Book struct {
	name  string
	price int
	id    int
}

func Do() {
	fmt.Println("结构体测试")

	//结构体使用
	book1 := Book{
		name:  "语文",
		price: 10,
		id:    1,
	}
	fmt.Println("书信息：", book1)

	//结构体修改
	book1.name = "语文书第二版"
	fmt.Println("书信息修改后：", book1)

	//函数传递结构体
	resetBook(&book1)
	fmt.Println("书信息被重置后：", book1)

	//结构体自己的函数
	book1.reset()
	fmt.Println("书信息自己重置后：", book1)
}

func resetBook(book *Book) {
	book.name = ""
	book.price = 0
	book.id = 0
}

func (s *Book) reset() {
	s.name = "nil"
	s.price = -1
	s.id = -1
}
